1. The Field of the Invention
The present invention relates to systems and methods for compositing an image. More particularly, the present invention relates to systems and methods for compositing an image by minimizing the memory required to composite the image and for improving the color quality of the image.
2. Background and Relevant Art
Televisions, computer monitors, and other display devices are capable of displaying many different kinds of signals, data, and images. Instead of receiving signals over a line of sight antenna, more and more people are receiving digital television signals over cable and satellite systems. These media are also being increasingly used to connect people with the Internet, and many people are beginning to have television and Internet access over the same medium. As a result, the display devices and as well as the set top boxes that receive those signals and data are being required to effectively handle those signals and data in order to display images that may be generated from those signals and data.
Displaying these images can be a difficult task for a variety of reasons. For example, consider how ordinary digital data, such as the data encountered on the Internet, is operated on by a set top box before an image may be generated from the digital data and displayed to the user. Because the Internet data can include a variety of graphic data, video streams, and other data types, it is necessary to identify the sources of data that will be used to generate the image. The generation of an image involves compositing the image from the data of the identified sources.
Compositing the Internet data is a lengthy process that often involves multiple data buffers. If the image to be displayed includes, for example, data from both a video source and a graphic source, it is often necessary to have buffers for both sampling the video and graphic data as well as buffers for resizing the video and graphic data. After this data has been sampled and resized, the data is ready to be composited into an image and displayed on the display device.
The final step of compositing the image often requires a system of full size image buffers. Typically, a double image buffer is used to display images that are being composited. While one of the image buffers containing a composited image is being displayed, the other image buffer is used to composite the next image. After the second image buffer has been composited, it is displayed while the image buffer that just finished being displayed is used to composite the next image. This process is repeated for each image being displayed on the display device.
Processing data in this manner requires a significant amount of memory, but newer technologies such as High Definition Television (HDTV) require even more memory in order to provide a double image buffer to both composite and display the images. The images that are included in HDTV have more lines in each image and more pixels in each line. Also the data that describes each pixel is often more complex. As a result, significant bandwidth is required to accommodate HDTV data. In fact, it is usually necessary to compress HDTV signals in order to fit within available bandwidths. As a result, the data that describes the images of HDTV requires significant resources because of the memory requirements. This amount of memory can be expensive, especially in consumer devices that are sensitive to cost.
Another problem associated with displaying images generated from various types of data on a display device is that the graphics on a particular image often overlap. In some instances, only the top image is visible to the user. However, the underlying graphics are usually composited without regard to whether they would be visible to the user. Compositing the data included in a graphic that will not be visible to a user is not only an inefficient use of time, but is also an expensive use of memory, particularly when there are several portions of the image that may overlap. In the case of HDTV, this can be a significant problem because a large amount of data is used to define and describe each portion of the image.
Another drawback of image composition is that when an image is composited, the color or video quality of the image often suffers because not all of the data that is used to generate the image is in the same color space. Some of the data is in the Red Green Blue (RGB) color space, and some of the data may be in the YCbCr (referred to herein as YUV) color space where the Y represents the luma component and the U and V represent the color difference or chrominance components. The data can also be represented in other color spaces. As a result, compositing an image for display may require the data to be converted from one color space to another color space several times. Each time a color space is converted to another color space, information is lost or distorted, and the lost or distorted information translates to poorer image quality as well as poorer image color.
This problem is particularly evident when a particular portion of an image is derived from more than one source. In these situations, the sources are typically converted to a single color space and blended. This often requires a color space conversion matrix for each separate source. Because each source may be converted, the conversion matrices, which are significant pieces of logic, are implemented multiple times. After the data sources have been converted to a common color space or format, they are blended together to produce an appropriate output. The main drawback is that each color space conversion degrades the ultimate output.